1. Field of the Invention
The present invention generally relates to systems and methods for requesting and receiving response messages from a number of remote endpoints connected over a network, and more particularly relates to features of UDP messages.
2. Description of the Related Art
WS-addressing is a specification that is applied to Extensible Markup Languages (“XMLs”) (such as Simple Object Access Protocol (“SOAP”)) and defines an XML schema that indicates certain Message Information headers. Among other information, these headers provide source and destination headers that indicate where the message came from, where it is going, and where to reply back to.
User Datagram Protocol (“UDP”) is a connectionless datagram protocol that may be used to broadcast/multicast messages over a network. The delivery of UDP messages to target recipients may be characterized as a “best-effort” in a sense that the messages are not guaranteed to be delivered and can be lost before reaching their target destination endpoints. Also, UDP does not provide a means to verify that a message has properly reached its target destination endpoint.
FIGS. 5A and 5B illustrate a conventional network system for exchanging messages between a number of devices connected over a network. In FIG. 5A, a UDP request message is broadcasted/multicasted from a requesting device 500 to multiple endpoints 550 (such as those endpoints listening to a multicast address or a well-known IP broadcast address). In response to the request message, each of the endpoints 550-1 through 550-N (also referred to herein as “responding devices”) generates and transmits a response message to the requesting device 500, as shown in FIG. 5B. In the system illustrated in FIGS. 5A and 5B, the response messages from the responding devices 550-1 through 550-N are all directed to the same UDP port 510 on the requesting device 500. Consequently, the UDP port 510 of the requesting device 500 will potentially receive one response message from each of the responding devices 550-1 through 550-N that has received the request message. Predicting the number of response messages that will be return to the requesting device is difficult if not impossible. In operation, response messages from the responding devices 550-1 through 550-N are queued into the buffer 512 of the UDP port 510 on the requesting device 500. If the buffer 512 is not large enough to queue all the response messages, then the buffer 512 will become overloaded and some of the response messages will be dropped, resulting in some response messages being lost forever. In such a situation, neither the responding devices nor the requesting device may be aware of the response messages being lost.